package A2019;

/*
首先生成两个质数 p, q，令 n = p · q，设 d 与 (p − 1) · (q − 1) 互质，则可找到 e 使得 d · e 除 (p − 1) · (q − 1) 的余数为 1。
n, d, e 组成了私钥，n, d 组成了公钥。
当使用公钥加密一个整数 X 时（小于 n），计算 C = Xd mod n，则 C 是加密后的密文。
当收到密文 C 时，可使用私钥解开，计算公式为 X = Ce mod n。例如，当 p = 5, q = 11, d = 3 时，n = 55, e = 27。
若加密数字 24，得 243 mod 55 = 19。解密数字 19，得 1927 mod 55 = 24。
现在你知道公钥中 n = 1001733993063167141, d = 212353，同时你截获了别人发送的密文 C = 20190324，请问，原文是多少？
//p=891234941 q=1123984201
 */
public class _5_RSA解密 {
	public static void main(String[] args) {
		long a=891234941-1;
		long b=1123984201-1;
		long n=0;
		long mod=a*b;
		long sum=212353;
//		for (long i = 212353*10000*1000; ; i++) {
//			if(sum*i%mod==1) {
//				System.out.println(i);
//				break;
//			}
//		}
		System.out.println(mod);
	}

	private static int f(int i, int j) {
		return i%j!=0 ? f(j,i%j):j;
	}

}
